package org.dxy.trigger.listener.route;

import com.google.common.eventbus.Subscribe;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dxy.domain.event.route.RouteUpdatedEvent;
import org.dxy.infrastructure.persistent.service.RouteViewService;
import org.dxy.trigger.listener.EventListener;
import org.springframework.stereotype.Component;

/**
 * 工艺路线更新事件监听器
 * @author: dxy
 * @createTime: 2025/8/17 11:49
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class RouteUpdatedEventListener implements EventListener<RouteUpdatedEvent> {
    
    private final RouteViewService routeViewService;
    
    @Override
    @Subscribe
    public void onEvent(RouteUpdatedEvent event) {
        try {
            log.info("处理工艺路线更新事件: routeId={}, stepIds={}", 
                    event.routeId(), event.stepIds());

            // 工艺路线更新事件主要是步骤信息的变更，这里可以记录日志
            // 具体的状态更新由其他具体的事件处理（如启用、禁用等）
            
            log.info("工艺路线更新事件处理完成, routeId={}", event.routeId());
        } catch (Exception e) {
            log.error("处理工艺路线更新事件失败", e);
            throw new RuntimeException("处理工艺路线更新事件失败", e);
        }
    }
}